// 上面这个代码处理过度动画（默认加上不用管）
document.addEventListener('DOMContentLoaded', () => {
  setTimeout(() => {
    document.body.classList.add('sidenav-pinned')
    document.body.classList.add('ready')
  }, 200)
})

// 创建bootstrap弹窗
let toastBox = document.querySelector('#myToast')
const toast = new bootstrap.Toast(toastBox, {
  animate: true,
  autohide: true,
  delay: 1400
})

//封装请提示框函数
const show = msg => {
  document.querySelector('.toast-body').innerHTML = msg
  toast.show()
}

//配基地址
axios.defaults.baseURL = 'http://ajax-api.itheima.net'

axios.interceptors.request.use(function (config) {
  // 在发送请求之前做些什么 config 配置对象
  // console.log(config)
  // 除了 登录和注册两个接口 不需要 身份认证 其他的接口都需要身份认证
  // 发送 ajax 请求之前 只有 本地存储里面 有 token 表示用户登录了 其他的请求 需要携带 Authorization· 请求头
  const token = localStorage.getItem('CMS85')
  // 在发送请求之前做些什么 config 配置对象
  if (token) {
    config.headers.Authorization = token
  }
  return config;
}, function (error) {
  // 对请求错误做些什么
  return Promise.reject(error);
});

//响应拦截器
/*
  服务器响应数据  成功 走第一个回调函数
  成功  可以将数据脱壳
*/
axios.interceptors.response.use(function (response) {
  // 对响应数据做点什么
  return response.data;
}, function (error) {
  // 对响应错误做点什么
  console.dir(error);
  console.log(error.response.status);
  //token失效则  会报401的错误  
  //报错则跳转至登录页面
  //并清除本地的token  username
  if (error.response.status === 401) {
    // show('用户登录信息已失效，请重新登录')
    alert('用户登录信息已失效，请重新登录')
    setTimeout(() => {
      location.href = './login.html'
    }, 1000)
    localStorage.clear()
  }
  return Promise.reject(error);
});

